/*
* Copyright 2010 Pavel Kozhin 
*
* Licensed under the Apache License, Version 2.0 (the "License"); 
* you may not use this file except in compliance with the License. 
* You may obtain a copy of the License at 
* 
* http://www.apache.org/licenses/LICENSE-2.0
* 
* Unless required by applicable law or agreed to in writing, software 
* distributed  under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
* See the License for the specific language governing permissions and 
* limitations under the License.
*
* Author: Pavel Kozhin.
*/

package org.bookmarksframework.manager
{
	import mx.core.Singleton;
	
	public class BookmarksManager
	{
		private static var _impl:IBookmarksManager = null;
		
		public static function getInstance():IBookmarksManager
		{
			if (!_impl)
			{
				if (!Singleton.getClass("org.bookmarksframework.manager::IBookmarksManager"))
				{
					Singleton.registerClass("org.bookmarksframework.manager::IBookmarksManager", 
						BookmarksManager);
				}
				else
				{
					throw new Error("Please, make sure that there is only one " +
						"IBookmarksManager used in Application.");
				}
				
				_impl = new BookmarksManagerImpl();
			}
			
			return _impl;
		}
	}
}